As World Wide Web (“web”) search engines (sometimes referred to as “Internet Search Engines”) have improved, many users have turned to these search engines for navigating the web, rather than inputting uniform resource locators (URLs) into browser address fields or using browser bookmarks. Search engines may perform searches of various databases, which may be public, e.g., the Internet, and/or private, e.g., an intranet, a client device, etc., using one or more known search techniques. For example, one known search technique, described in an article entitled, “The Anatomy of a Large-Scale Hypertextual Search Engine,” by Sergey Brin and Lawrence Page, assigns a degree of importance to a document, such as a web page, based on the link structure of the web.
These search engines may be applied to information over the web or over information on a user's local hard drive. Some search methods often involve computationally intensive applications. Some of these applications may fail as a practical matter, e.g., resulting in the user interrupting or discontinuing use of the system, because of the demands they place on client-device resources. Such resource demands can slow response time of the client device, use excessive amounts of central processing unit space, and use excessive amounts of processor memory, such as RAM, which often results in file swapping, and can degrade the overall user experience in certain circumstances.
What is needed is an improved method and system—especially in a high-bandwidth server environment—to dynamically regulate, e.g., throttle, the application's usage of the client device such that the user's perception of system performance is not affected in a material way by interaction with the application.